<html><head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <title>Part&nbsp;III.&nbsp;Core Technologies</title><link rel="stylesheet" href="css/stylesheet.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><link rel="home" href="index.html" title="Reference Documentation"><link rel="up" href="index.html" title="Reference Documentation"><link rel="prev" href="new-in-3.html" title="2.&nbsp;New Features and Enhancements in Spring 3.0"><link rel="next" href="beans.html" title="3.&nbsp;The IoC container"><!--Begin Google Analytics code--><script type="text/javascript">
			var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
			document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
		</script><script type="text/javascript">
			var pageTracker = _gat._getTracker("UA-2728886-3");
			pageTracker._setDomainName("none");
			pageTracker._setAllowLinker(true);
			pageTracker._trackPageview();
		</script><!--End Google Analytics code--></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part&nbsp;III.&nbsp;Core Technologies</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="new-in-3.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="beans.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="spring-core"></a>Part&nbsp;III.&nbsp;Core Technologies</h1></div></div></div><div class="partintro" lang="en"><div></div><p>This part of the reference documentation covers all of those
      technologies that are absolutely integral to the Spring
      Framework.</p><p>Foremost amongst these is the Spring Framework's Inversion of
      Control (IoC) container. A thorough treatment of the Spring Framework's
      IoC container is closely followed by comprehensive coverage of Spring's
      Aspect-Oriented Programming (AOP) technologies. The Spring Framework has
      its own AOP framework, which is conceptually easy to understand, and
      which successfully addresses the 80% sweet spot of AOP requirements in
      Java enterprise programming.</p><p>Coverage of Spring's integration with AspectJ (currently the
      richest - in terms of features - and certainly most mature AOP
      implementation in the Java enterprise space) is also provided.</p><p>Finally, the adoption of the test-driven-development (TDD)
      approach to software development is certainly advocated by the Spring
      team, and so coverage of Spring's support for integration testing is
      covered (alongside best practices for unit testing). The Spring team has
      found that the correct use of IoC certainly does make both unit and
      integration testing easier (in that the presence of setter methods and
      appropriate constructors on classes makes them easier to wire together
      in a test without having to set up service locator registries and
      suchlike)... the chapter dedicated solely to testing will hopefully
      convince you of this as well.</p><div class="itemizedlist"><ul type="disc"><li><p><a class="xref" href="beans.html" title="3.&nbsp;The IoC container">Chapter&nbsp;3, <i>The IoC container</i></a></p></li><li><p><a class="xref" href="resources.html" title="4.&nbsp;Resources">Chapter&nbsp;4, <i>Resources</i></a></p></li><li><p><a class="xref" href="validation.html" title="5.&nbsp;Validation, Data Binding, and Type Conversion">Chapter&nbsp;5, <i>Validation, Data Binding, and Type Conversion</i></a></p></li><li><p><a class="xref" href="expressions.html" title="6.&nbsp;Spring Expression Language (SpEL)">Chapter&nbsp;6, <i>Spring Expression Language (SpEL)</i></a></p></li><li><p><a class="xref" href="aop.html" title="7.&nbsp;Aspect Oriented Programming with Spring">Chapter&nbsp;7, <i>Aspect Oriented Programming with Spring</i></a></p></li><li><p><a class="xref" href="aop-api.html" title="8.&nbsp;Spring AOP APIs">Chapter&nbsp;8, <i>Spring AOP APIs</i></a></p></li><li><p><a class="xref" href="testing.html" title="9.&nbsp;Testing">Chapter&nbsp;9, <i>Testing</i></a></p></li></ul></div></div></div><!--Begin LoopFuse code--><script src="http://loopfuse.net/webrecorder/js/listen.js" type="text/javascript"></script><script type="text/javascript">
			_lf_cid = "LF_48be82fa";
			_lf_remora();
		</script><!--End LoopFuse code--><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="new-in-3.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="beans.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">2.&nbsp;New Features and Enhancements in Spring 3.0&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;3.&nbsp;The IoC container</td></tr></table></div><!-- Begin 2nd Google code - a mod -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));</script>
<script type="text/javascript">
var OrgTracker = _gat._getTracker("UA-2728886-2"); OrgTracker._setDomainName("none");
OrgTracker._setAllowLinker(true);
OrgTracker._trackPageview();
</script>
 <!-- End 2nd Google code -->


<script type="text/javascript">

function detectLastFrame() {
   var thisF = this.window;
   var allF = parent.top.frames;
   return allF[allF.length - 1] == thisF; }

// Only inject the following code if this is a normal page or the last // frame of a frameset.
if (parent.top.frames.length == 0 || detectLastFrame()) {
    // Inject the SpringSource search widget too.
    document.write(unescape("%3Cscript src='http://search.springsource.org/widget/searchtool.js' type='text/javascript'%3E%3C/script%3E"));
    // Inject the Eloqua code
    document.write(unescape("%3Cscript src='/elqNow/elqCfg.js' type='text/javascript'%3E%3C/script%3E"));
    document.write(unescape("%3Cscript src='/elqNow/elqImg.js' type='text/javascript'%3E%3C/script%3E"));

}
</script>
</body>
</html>